﻿using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

public partial class _SENAC2 : System.Web.UI.Page
{
    SqlConnection conexaoIntranet = new SqlConnection(ConfigurationManager.ConnectionStrings["conexao_intranet"].ConnectionString);

    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnProcessar_Click(object sender, EventArgs e)
    {
        Response.Write("<hr><strong>ATENÇÃO - CPFs sem escolaridade</strong><br>");


        wsMiraPF.Mira ws = new wsMiraPF.Mira();


        SqlConnection conexaoIntranet = new SqlConnection(ConfigurationManager.ConnectionStrings["conexao_intranet"].ConnectionString);
        SqlCommand consultaLogin = null;
        SqlDataReader drLogin;
        int inscritosSemEscolaridade = 0, i = 0;
        try
        {
            if (conexaoIntranet != null && conexaoIntranet.State != ConnectionState.Open)
                conexaoIntranet.Open();
            string instrucao = "Select CPF, Nome from CamaraTemp";
            consultaLogin = new SqlCommand(instrucao, conexaoIntranet);
            drLogin = consultaLogin.ExecuteReader();
            if (drLogin.HasRows)
            {
                while (drLogin.Read())
                {
                    i++;
                    string escolaridade = "";
                    DataSet dsPF = ws.PesquisaPessoaFisicaPorCPF(drLogin["CPF"].ToString().Replace(".","").Replace("-",""));
                    if (dsPF.Tables[0].Rows.Count > 0)
                    {
                        DataSet dsEscolaridade = ws.PesquisaEscolaridadeDaPessoaFisica(int.Parse(dsPF.Tables[0].Rows[0]["CD_PsaFsc"].ToString()));
                        if (dsEscolaridade.Tables[0].Rows.Count > 0)
                        {
                            switch (dsEscolaridade.Tables[0].Rows[0]["CD_GruEsl"].ToString())
                            {
                                case "1":
                                    escolaridade = "Ensino Fundamental incompleto";
                                    break;
                                case "2":
                                    escolaridade = "Ensino fundamental completo";
                                    break;
                                case "3":
                                    escolaridade = "Ensino médio incompleto";
                                    break;
                                case "4":
                                    escolaridade = "Ensino médio completo";
                                    break;
                                case "5":
                                    escolaridade = "Graduação incompleto";
                                    break;
                                case "6":
                                    escolaridade = "Graduação completo";
                                    break;
                                case "7":
                                    escolaridade = "Tecnologia incompleto";
                                    break;
                                case "8":
                                    escolaridade = "Tecnologia completo";
                                    break;
                                case "9":
                                    escolaridade = "Especialização incompleto";
                                    break;
                                case "10":
                                    escolaridade = "Especialização completo";
                                    break;
                                case "11":
                                    escolaridade = "Mestrado incompleto";
                                    break;
                                case "12":
                                    escolaridade = "Mestrado completo";
                                    break;
                                case "13":
                                    escolaridade = "Doutorado incompleto";
                                    break;
                                case "14":
                                    escolaridade = "Doutorado completo";
                                    break;
                                case "15":
                                    escolaridade = "Phd incompleto";
                                    break;
                                case "16":
                                    escolaridade = "Phd completo";
                                    break;
                                case "17":
                                    escolaridade = "Extensão completo";
                                    break;
                                case "18":
                                    escolaridade = "Ensino fundamental cursando";
                                    break;
                                case "19":
                                    escolaridade = "Ensino médio cursando";
                                    break;
                                case "20":
                                    escolaridade = "Graduação cursando";
                                    break;
                                case "21":
                                    escolaridade = "Pós-graduação cursando";
                                    break;
                            }
                        }


                        if (escolaridade == "")
                            inscritosSemEscolaridade++;

                        if (escolaridade != "")
                        {
                            if (AtualizaEscolaridade(drLogin["CPF"].ToString(), escolaridade))
                                Response.Write(drLogin["CPF"].ToString() + " - " + drLogin["Nome"].ToString() + " - " + escolaridade + " - Atualização OK <br />");
                            else
                                Response.Write(drLogin["CPF"].ToString() + " - " + drLogin["Nome"].ToString() + " - " + escolaridade + " - Problema na atualização <br />");
                        }
                        else
                        {
                            Response.Write(drLogin["CPF"].ToString() + " - " + drLogin["Nome"].ToString() + " - " + escolaridade + " - Atualização não feita<br />");
                        }
                    }
                } 
            }
            drLogin.Close();
        }
        finally
        {
            conexaoIntranet.Close();
        }






        Response.Write("<hr>");
        Response.Write("Total encontrado: "+ i.ToString() +" - Total sem escolaridade: " + inscritosSemEscolaridade.ToString());
    }

    private bool AtualizaEscolaridade(string cpf, string escolaridade)
    {
        int linhasAfetadas = 0;
        SqlConnection conexaoIntranet = new SqlConnection(ConfigurationManager.ConnectionStrings["conexao_intranet"].ConnectionString);
        try
        {
            conexaoIntranet.Open();
            SqlCommand insereCurso = new SqlCommand();
            insereCurso.Connection = conexaoIntranet;
            insereCurso.CommandText = "UPDATE CamaraInscritos SET Escolaridade = '"+ escolaridade +"' WHERE CPF = '" + cpf + "'";
            linhasAfetadas = insereCurso.ExecuteNonQuery();
        }
        catch (Exception erro)
        {
            if (erro is SqlException)
            {
                lblMensagem.ForeColor = System.Drawing.Color.Red;
                lblMensagem.Text = "Erro na atualização da escolaridade - CPF: " + cpf;
            }
            else
                lblMensagem.Text = erro.Message;
        }
        finally
        {
            conexaoIntranet.Close();
        }
        return linhasAfetadas == 1;
    }

    private bool InsereCandidato(string cpf, string nomeAluno, string endereco, string complemento, string cidade, string bairro, string estado, string cep, string telefone, string telefone2, string identidade, string emissor, string dataNascimento, string sexo, string estadoCivil, string email, string nacionalidade, string escolaridade)
    {
        int linhasAfetadas = 0;
        try
        {
            conexaoIntranet.Open();
            DateTime dtNascimento = Convert.ToDateTime(dataNascimento);
            dataNascimento = dtNascimento.ToString("MM-dd-yyyy"); 
            SqlCommand insereCandidato = new SqlCommand("INSERT INTO CamaraInscritos (CPF, NomeAluno, Endereco, Complemento, Cidade, Bairro, Estado, CEP, Telefone, Telefone2, Identidade, Em, DataNascimento, Sexo, EstadoCivil, Email, Nacionalidade, Escolaridade) VALUES ('"+ cpf +"', '"+ nomeAluno +"', '"+ endereco +"', '"+ complemento +"', '"+ cidade +"', '"+ bairro +"', '"+ estado +"', '"+ cep +"', '"+ telefone +"', '"+ telefone2 +"', '"+ identidade +"', '"+ emissor +"', '"+ dataNascimento +"', '"+ sexo +"', '"+ estadoCivil +"', '"+ email +"', '"+ nacionalidade +"', '"+ escolaridade +"')", conexaoIntranet);
            linhasAfetadas = insereCandidato.ExecuteNonQuery();
        }
        catch (Exception erro)
        {
            lblMensagem.ForeColor = System.Drawing.Color.Red;
            lblMensagem.Text = erro.Message;
        }
        finally
        {
            conexaoIntranet.Close();
        }
        return linhasAfetadas == 1;
    }

    private bool AtualizaCandidato(string cpf, string endereco, string complemento, string cidade, string bairro, string cep, string telefone, string telefone2)
    {
        int linhasAfetadas = 0;
        try
        {
            conexaoIntranet.Open();
            SqlCommand atualizaCandidato = new SqlCommand("UPDATE CamaraInscritos SET Endereco = '"+ endereco +"', Complemento = '"+ complemento +"', Cidade = '"+ cidade +"', Bairro = '"+ bairro +"', CEP = '"+ cep +"', Telefone = '"+ telefone +"', Telefone2 = '"+ telefone2 +"' WHERE CPF = '" + cpf + "'", conexaoIntranet);
            linhasAfetadas = atualizaCandidato.ExecuteNonQuery();
        }
        catch (Exception erro)
        {
            lblMensagem.ForeColor = System.Drawing.Color.Red;
            lblMensagem.Text = erro.Message;
        }
        finally
        {
            conexaoIntranet.Close();
        }
        return linhasAfetadas == 1;
    }

    private bool CandidatoEncontrado(string cpf)
    {
        bool encontrado = false;
        try
        {
            conexaoIntranet.Open();
            SqlCommand pesquisaCandidato = new SqlCommand("SELECT CPF FROM CamaraInscritos WHERE CPF = '"+ cpf +"'", conexaoIntranet);
            SqlDataReader drPesquisaSandidato = pesquisaCandidato.ExecuteReader();
            encontrado = drPesquisaSandidato.HasRows;
            drPesquisaSandidato.Close();
        }
        catch (Exception erro)
        {
            lblMensagem.ForeColor = System.Drawing.Color.Red;
            lblMensagem.Text = erro.Message;
        }
        finally
        {
            conexaoIntranet.Close();
        }
        return encontrado;
    }


}